﻿using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;
using Sinacor.Infra.Service.Security.Services;
using Sinacor.Servico.Bovespa.Corretagem.Service.ServiceContract;

namespace Sinacor.Servico.Bovespa.Corretagem.Service.ServiceImplementation
{

    //Task  : 5617 
    // Data : 13/03/2009
    // Autor:Apsilva
    [SinacorServiceBehavior]
    public class Desconto : IDesconto   
    {

        #region IDesconto Members

        /// <summary>
        /// Lista de Descontos Cadastaraspds
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public List<DataContract.Response.DescontoResponse>  ConsultarDescontos(DataContract.Request.FiltroDescontoChaveRequest request)
        {
             return (new Translator.BusinessEntityToDataContract.Desconto().ToDescontoResponse(new  BusinessLogic.Desconto().ConsultarDescontos( new Translator.DataContractToBusinessEntity.Desconto().ToFiltroDescontoChave(request)))); 

        }

        public void ExcluirDesconto(Sinacor.Servico.Bovespa.Corretagem.Service.DataContract.Request.FiltroDescontoChaveRequest request)
        {
            new BusinessLogic.Desconto().ExcluirDesconto(new Translator.DataContractToBusinessEntity.Desconto().ToFiltroDescontoChave(request)); 
        }

        public void ExcluirDescontos(List<Sinacor.Servico.Bovespa.Corretagem.Service.DataContract.Request.FiltroDescontoChaveRequest> request)
        {
            new BusinessLogic.Desconto().ExcluirDescontos(new Translator.DataContractToBusinessEntity.Desconto().ToFiltroDescontoChave(request));
        }

        public void ExecutarTransacoesDesconto(List<Sinacor.Servico.Bovespa.Corretagem.Service.DataContract.Request.DescontoRequest> inclusaoList, List<Sinacor.Servico.Bovespa.Corretagem.Service.DataContract.Request.FiltroDescontoChaveRequest> exclusaoList)
        {
            new BusinessLogic.Desconto().IncluirDescontos(new Translator.DataContractToBusinessEntity.Desconto().ToDesconto(inclusaoList));

            new BusinessLogic.Desconto().ExcluirDescontos(new Translator.DataContractToBusinessEntity.Desconto().ToFiltroDescontoChave(exclusaoList));

        }

        public void IncluirAjustarDesconto(Sinacor.Servico.Bovespa.Corretagem.Service.DataContract.Request.DescontoRequest request)
        {
            new BusinessLogic.Desconto().IncluirAjustarDesconto(new Translator.DataContractToBusinessEntity.Desconto().ToDesconto(request));
        }

        public void IncluirDesconto(Sinacor.Servico.Bovespa.Corretagem.Service.DataContract.Request.DescontoRequest request)
        {
            new BusinessLogic.Desconto().IncluirDesconto(new Translator.DataContractToBusinessEntity.Desconto().ToDesconto(request));
        }

        public void IncluirDescontos(List<Sinacor.Servico.Bovespa.Corretagem.Service.DataContract.Request.DescontoRequest> requestList)
        {
            new  BusinessLogic.Desconto().IncluirDescontos(new Translator.DataContractToBusinessEntity.Desconto().ToDesconto(requestList));
        }

        public Sinacor.Servico.Bovespa.Corretagem.Service.DataContract.Response.DescontoResponse ObterDesconto(Sinacor.Servico.Bovespa.Corretagem.Service.DataContract.Request.FiltroDescontoRequest request)
        {
            return (new Translator.BusinessEntityToDataContract.Desconto().ToDescontoResponse(new BusinessLogic.Desconto().ObterDesconto(new Translator.DataContractToBusinessEntity.Desconto().ToFiltroDesconto(request)))); 
        }

        public Sinacor.Servico.Bovespa.Corretagem.Service.DataContract.Response.ConflitoResponse VerificarConflitoPeriodo(DataContract.Request.DescontoRequest request)
        {
            return (new Translator.BusinessEntityToDataContract.Conflito().ToConflitoResponse(new BusinessLogic.Desconto().VerificarConflitoPeriodo(new Translator.DataContractToBusinessEntity.Desconto().ToDesconto(request)))); 
        }

        #endregion
    }
}
